<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meat name="viewpoet" content="with=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            * {
                margin: 0;
                padding: 0;
                box-sizing: border-box;
                font-size: 18px;
            }

            #app {
                padding: 10px 20px;
            }

            .query {
                margin: 10px 0;
            }

            .box {
                display: flex;
            }

            textarea {
                width: 300px;
                height: 160px;
                font-size: 18px;
                border: 1px solid #dedede;
                outline: none;
                resize: none;
                padding: 10px;
            }

            textarea:hover {
                border: 1px solid #1589f5;
            }

            .transbox {
                width: 300px;
                height: 160px;
                background-color: #f0f0f0;
                padding: 10px;
                border: none;
            }

            .tip-box {
                width: 300px;
                height: 25px;
                line-height: 25px;
                display: flex;
            }

            .tip-box span {
                flex: 1;
                text-align: center;
            }

            .query span {
                font-size: 18px;
            }

            .input-wrap {
                position: relative;
            }

            .input-wrap span {
                position: absolute;
                right: 15px;
                bottom: 15px;
                font-size: 12px;
            }

            .input-wrap i {
                font-size: 20px;
                font-style: normal;
            }
        </style>
</head>

<body>
    <div id="app">
        <!-- 条件选择框 -->
        <div class="query">
            <span>翻译成的语言：</span>
            <select>
                <option value="italy">意大利</option>
                <option value="english">英语</option>
                <option value="german">德语</option>
            </select>
        </div>

        <!-- 翻译框 -->
        <div class="box">
            <div class="input-wrap">
                <textarea v-model="obj.words"></textarea>
                <span><i>⌨️</i>文档翻译</span>
            </div>
            <div class="output-wrap">
                <div class="transbox">{{ result }}</div>
            </div>
        </div>
    </div>
    <!-- 引入的是开发版本包 - 包含完整的注释和警告 -->
    <script src="https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
    <script>
        const app = new Vue({
            el: '#app',
            data: {
                // words:''
                obj: {
                    words: ''
                },
                result: '', //翻译结果
                timer: null  //延时器的id
            },
            watch: {
                //该方法会在数据变化时调用执行
                //newValue新值    oldValue老值（一般不用，可以不写）
                // words(newValue, oldValue) {
                //     console.log("变化了：" + newValue)
                // }

                //这里写的是js代码，命名不能有特殊字符，如果有的话用 " " 括起来
                'obj.words'(newValue) {
                    // 防抖: 延迟执行 → 干啥事先等一等，延迟一会，一段时间内没有再次触发，才执行
                    clearTimeout(this.timer)
                    this.timer = setTimeout(async () => {
                        const res = await axios({
                            //这是一个模拟翻译器，返回一个随机字符串
                            url: 'https://applet-base-api-t.itheima.net/api/translate',
                            params: {
                                //words是要翻译的文本
                                words: newValue
                            }
                        })
                        this.result = res.data.data
                    }, 1000)    //1000ms => 1s


                }
            }

        })
    </script>

</body>

</html>